For the purposes of the present invention, "virtual robots" (or "BOTs") are software programs that interact and/or communicate with users (human, machine or otherwise) that take actions or make responses according to input from these users. BOTs are the subject of the co-pending and co-assigned parent application entitled "Methods for Automatically Selecting Responses for a Virtual Robot", filed Feb. 3, 1998, U.S. Ser. No. 09/018,213, and incorporated by reference in its entirety herein, which itself is a continuation-in-part of a co-pending and co-assigned parent application entitled "Methods for Automatically Focusing the Attention of a Virtual Robot Interacting with Users", filed Jun. 4, 1997, U.S. Ser. No. 08/868,713, and incorporated by reference in its entirety herein. A common use of such a BOT is as an interface to a web site wherein the administrator of that site has programmed the BOT to answer simple inquiries that are typically asked by visitors to the site. The above identified application discloses a method of creating BOTs according to "scripts"--i.e. programs that are written in a very high level language that closely resembles a human natural language. These scripts embody a certain amount of information concerning the site that the administrator desires the BOT to communicate to a user during a connection session.
The above identified applications includes a variety of methods for interpreting the "context" in which a question or statement is given to the bot. These methods include a method of maintaining a focus of attention stack that orders the topics discussed by the BOT according to their relevance to the current conversation, and a method of automatically replacing pronouns in user inputs.
However, both of these methods suffer from significant disadvantages in practice. Automatic pronoun replacement is very effective for the pronouns "he", "she", "him", and "her", but does not work effectively in practice for other pronouns such as "it", "they", "that", and "you", due to the frequency with which these words are used in senses other than as pronouns. The focus of attention stack is generally successful at distinguishing among multiple answers to a single question (such as "what is it?") but lacks any effective way of deciding whether such an answer is preferable to a default response such as "I don't know." For instance, suppose there is one topic that answers the question "where is it?" if the user has been discussing Neuromedia, but no topic that answers the question "where is it?" when "it" refers to San Francisco. In this case, even if the user has been discussing San Francisco and has not mentioned Neuromedia at all, if the user then asks "what is it?" they may get a response describing the location of Neuromedia rather than the correct response, which in this case is probably "I don't know." Given that a BOT's knowledge is in practice always incomplete, such situations can repeatedly arise during the interaction of a user with a BOT.
Thus, there is a need in the art to have a method of selecting a response to a context-sensitive question or statement, and for that method to allow a question to be answered with a default answer or no answer at all, even when the identical question would get a specific answer if asked in another context.